layui.use(['laydate', 'table'], function () {
    var table = layui.table;
    var form = layui.form;
    var laydate = layui.laydate;
    //执行一个laydate实例
    laydate.render({
        elem: '#start' //指定元素
        , trigger: "click"
    });
    laydate.render({
        elem: '#end' //指定元素
        , trigger: "click"
    });
    form.on("submit(sreach)", function (obj) {
        obj = obj.field;

        let hobby = [];
        $('input[type=checkbox][name=hobby]:checked').each(function () {
            hobby.push($(this).attr("title"));
        });
        obj.hobby = hobby.join(",");
        console.log(obj);
        //查询数据库:java
        findAll(obj);
        return false;
    });
    //监听性别操作
    form.on('switch(sexDemo)', function (obj) {
        // layer.tips(this.value + ' ' + this.name + '：' + obj.elem.checked, obj.othis);
        //如果这里写接口update，那么我们会修改性别和状态和修改其他代码都是一个sql语句
        //会发现代码非常臃肿，而且不符合单一职责：一个方法里面只做一件事情，
        //如果放在一起，以后涉及到修改代码的时候会牵一发而动全身，所以该分开就分开
        $.ajax({
            url: '/back/user/sex',
            data: {id: this.value},
            type: 'post',
            dataType: 'json',
            success: function (res) {
                if (res.count == 1) {
                    layer.tips("修改性别成功");
                } else {
                    layer.tips("修改性别失败");
                }
            }
        })
    });
    //监听锁定操作
    form.on('checkbox(lockDemo)', function (obj) {
        // layer.tips(this.value + ' ' + this.name + '：'+ obj.elem.checked, obj.othis);
        $.ajax({
            url: '/back/user/enable',
            data: {id: this.value},
            type: 'post',
            dataType: 'json',
            success: function (res) {
                if (res.count == 1) {
                    layer.tips("修改状态成功");
                } else {
                    layer.tips("修改状态失败");
                }
            }
        })
    });
    //监听工具条
    table.on('tool(table)', function (obj) {
        var data = obj.data;
        if (obj.event === 'detail') {
            layer.msg('ID：' + data.id + ' 的查看操作');
        } else if (obj.event === 'del') {
            //记得一定要再次提醒用户删除，
            layer.confirm('真的删除行么', function (index) {
                $.ajax({
                    url: '/back/user/delete',
                    data: {id: data.id},
                    type: 'post',
                    dataType: 'json',
                    success: function (res) {
                        if (res.count == 1) {
                            layer.tips("删除成功");
                        } else {
                            layer.tips("删除失败");
                        }
                    }
                })
                obj.del();
                layer.close(index);
            });
        } else if (obj.event === 'edit') {
            //要再另一个页面拿到当前的数据
            sessionStorage.setItem("userId", data.id);
            xadmin.open('编辑用户', './member-edit.html', 600, 400);
            // layer.alert('编辑行：<br>' + JSON.stringify(data))
        } else if (obj.event === 'editPass') {
            layer.alert('修改密码：<br>' + JSON.stringify(data))
        }
    });
    findAll({});


    function findAll(data) {
        table.render({
            elem: '#test'
            , url: '/back/user/findAll'
            , where: data
            , parseData: function (res) { //res 即为原始返回的数据
                console.log(res, 1111);
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": res.count, //解析数据长度
                    "data": res.data //解析数据列表
                };
            }
            , cols: [[
                //field对应后台model里面的属性，width是显示的宽度
                {field: 'id', width: 80, title: 'ID', sort: true}
                , {field: 'username', width: 180, title: '用户名', sort: true}
                , {field: 'sex', width: 80, title: '性别', templet: '#sex'}
                , {field: 'phone', width: 180, title: '电话'}
                , {field: 'address', title: '地址', minWidth: 150}
                , {field: 'enable', width: 130, title: '状态', templet: '#enable'}
                , {field: 'hobby', width: 80, title: '爱好', sort: true}
                , {field: 'birthday', width: 80, title: '生日'}
                , {fixed: 'right', width: 250, align: 'center', toolbar: '#barDemo'}
            ]]
            , page: true
        });
    }

});
